//-----------------------------------------------------------------------
//  This file is part of the Microsoft Code Samples.
// 
//  Copyright (C) Microsoft Corporation.  All rights reserved.
// 
//  This source code is intended only as a supplement to Microsoft
//  Development Tools and/or on-line documentation.  See these other
//  materials for detailed information regarding Microsoft code samples.
// 
//  THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//  PARTICULAR PURPOSE.
//-----------------------------------------------------------------------

using System;
using Microsoft.Samples.SqlServer;
using System.Collections;


namespace Microsoft.Samples.SqlServer 
{
    public class ListItem
    {
        private int quantity;
        private string status;

        public ListItem(int curQuantity, string curStatus)
        {
            status = curStatus;
            quantity = curQuantity;
        }

        public string Status
        {
            get
            {
                return status;
            }
            set
            {
                status = value;
            }
        }

        public int Quantity
        {
            get
            {
                return quantity;
            }
            set
            {
                quantity = value;
            }
        }
    }

    public class State
    {
        private Guid conversationGroup = Guid.Empty;
        private Guid originalDialogHandle = Guid.Empty;
        private Guid toPurchasingDialogHandle = Guid.Empty;
        private Guid toShippingDialogHandle = Guid.Empty;
        private Guid toManufacturingDialogHandle = Guid.Empty;
        private string customerId = "";
        private string salesOrderId = "";
        private string orderDate = "";
        private string status = Constants.Status.PendingInventoryCheck.ToString();
        
        public Hashtable purchasingList = new Hashtable();
        public Hashtable manufacturingList = new Hashtable();
        public Hashtable shippingList = new Hashtable();

        public override string ToString()
        {
            return status;
        }

        public Guid ConversationGroupID
        {
            get
            {
                return conversationGroup;
            }
            set
            {
                conversationGroup = value;
            }
        }

        public Guid OriginalDialogHandle
        {
            get
            {
                return originalDialogHandle;
            }
            set
            {
                originalDialogHandle = value;
            }
        }

        public Guid ToPurchasingDialogHandle
        {
            get
            {
                return toPurchasingDialogHandle;
            }
            set
            {
                toPurchasingDialogHandle = value;
            }
        }
        
        public Guid ToShippingDialogHandle
        {
            get
            {
                return toShippingDialogHandle;
            }
            set
            {
                toShippingDialogHandle = value;
            }
        }

        public Guid ToManufacturingDialogHandle
        {
            get
            {
                return toManufacturingDialogHandle;
            }
            set
            {
                toManufacturingDialogHandle = value;
            }
        }

        public String CustomerId
        {
            get
            {
                return customerId;
            }
            set
            {
                customerId = value;
            }
        }
        
        public String SalesOrderId
        {
            get
            {
                return salesOrderId;
            }
            set
            {
                salesOrderId = value;
            }
        }

        public String OrderDate
        {
            get
            {
                return orderDate;
            }
            set
            {
                orderDate = value;
            }
        }
        
        public string Status
        {
            get
            {
                return status;
            }
            set
            {
                status = value;
            }
        }

    }
}
